import request from '@/utils/request';

/**
 * 获取商品列表
 * @param {{supplierName: null, minPrice: null, pageSize: number, maxPrice: null, pageNum: number, type: null}} params 查询参数
 * @param {number} params.pageNum 页码
 * @param {number} params.pageSize 每页条数
 * @param {string} [params.type] 分类ID
 * @param {number} [params.minPrice] 最低价
 * @param {number} [params.maxPrice] 最高价
 * @param {string} [params.supplierName] 供应商名称
 * @returns {Promise<{ list: Array, total: number }>} 商品列表和总记录数
 */
export async function getProductList(params) {
  try {
    // 清理空值参数
    const cleanedParams = {
      pageNum: params.pageNum,
      pageSize: params.pageSize,
      status: 1,
      type: params.type || undefined, // 使用 type 替代 categoryId
    };

    // 调用后端接口
    const response = await request({
      url: '/supply/prodinfo/list',
      method: 'get',
      params: cleanedParams,
    });

    // 检查返回状态
    if (response.code === 0) {
      // 格式化商品数据，保留原始数据，直接返回原始响应
      // 不进行数据处理，避免丢失unitPrice字段
      return response;
    } else {
      throw new Error(response.msg || '获取商品列表失败');
    }
  } catch (error) {
    console.error('获取商品列表失败:', error);
    throw error;
  }
}
